using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("MinionShake")]
	public class MinionShake : MonoBehaviour
	{
		public Vector3 OFFSCREEN_POSITION => method_2<Vector3>("OFFSCREEN_POSITION");

		public static float INTENSITY_SMALL => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "MinionShake", "INTENSITY_SMALL");

		public static float INTENSITY_MEDIUM => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "MinionShake", "INTENSITY_MEDIUM");

		public static float INTENSITY_LARGE => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "MinionShake", "INTENSITY_LARGE");

		public static float DISABLE_HEIGHT => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "MinionShake", "DISABLE_HEIGHT");

		public GameObject m_MinionShakeAnimator => method_3<GameObject>("m_MinionShakeAnimator");

		public bool m_Animating => method_2<bool>("m_Animating");

		public Vector2 m_ImpactDirection => method_2<Vector2>("m_ImpactDirection");

		public Vector3 m_ImpactPosition => method_2<Vector3>("m_ImpactPosition");

		public float m_Angle => method_2<float>("m_Angle");

		public ShakeMinionIntensity m_ShakeIntensityType => method_2<ShakeMinionIntensity>("m_ShakeIntensityType");

		public float m_IntensityValue => method_2<float>("m_IntensityValue");

		public ShakeMinionType m_ShakeType => method_2<ShakeMinionType>("m_ShakeType");

		public GameObject m_MinionShakeInstance => method_3<GameObject>("m_MinionShakeInstance");

		public Transform m_CardPlayAllyTransform => method_3<Transform>("m_CardPlayAllyTransform");

		public Vector3 m_MinionOrgPos => method_2<Vector3>("m_MinionOrgPos");

		public Quaternion m_MinionOrgRot => method_2<Quaternion>("m_MinionOrgRot");

		public float m_StartDelay => method_2<float>("m_StartDelay");

		public float m_Radius => method_2<float>("m_Radius");

		public bool m_IgnoreAnimationPlaying => method_2<bool>("m_IgnoreAnimationPlaying");

		public bool m_IgnoreHeight => method_2<bool>("m_IgnoreHeight");

		public static int s_IdleState => MonoClass.smethod_6<int>(TritonHs.MainAssemblyPath, "", "MinionShake", "s_IdleState");

		public MinionShake(IntPtr address, string className)
			: base(address, className)
		{
		}

		public MinionShake(IntPtr address)
			: this(address, "MinionShake")
		{
		}

		public static void ShakeAllMinions(GameObject shakeTrigger, ShakeMinionType shakeType, Vector3 impactPoint, ShakeMinionIntensity intensityType, float intensityValue, float radius, float startDelay)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "MinionShake", "ShakeAllMinions", shakeTrigger, shakeType, impactPoint, intensityType, intensityValue, radius, startDelay);
		}

		public static void ShakeTargetMinion(GameObject shakeTarget, ShakeMinionType shakeType, Vector3 impactPoint, ShakeMinionIntensity intensityType, float intensityValue, float radius, float startDelay)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "MinionShake", "ShakeTargetMinion", shakeTarget, shakeType, impactPoint, intensityType, intensityValue, radius, startDelay);
		}

		public static void ShakeObject(GameObject shakeObject, ShakeMinionType shakeType, Vector3 impactPoint, ShakeMinionIntensity intensityType, float intensityValue, float radius, float startDelay)
		{
			MonoClass.smethod_19(TritonHs.MainAssemblyPath, "", "MinionShake", "ShakeObject", new Class276.Enum20[7]
			{
				Class276.Enum20.Class,
				Class276.Enum20.ValueType,
				Class276.Enum20.ValueType,
				Class276.Enum20.ValueType,
				Class276.Enum20.R4,
				Class276.Enum20.R4,
				Class276.Enum20.R4
			}, shakeObject, shakeType, impactPoint, intensityType, intensityValue, radius, startDelay);
		}

		public static void ShakeObject(GameObject shakeObject, ShakeMinionType shakeType, Vector3 impactPoint, ShakeMinionIntensity intensityType, float intensityValue, float radius, float startDelay, bool ignoreAnimationPlaying)
		{
			MonoClass.smethod_19(TritonHs.MainAssemblyPath, "", "MinionShake", "ShakeObject", new Class276.Enum20[8]
			{
				Class276.Enum20.Class,
				Class276.Enum20.ValueType,
				Class276.Enum20.ValueType,
				Class276.Enum20.ValueType,
				Class276.Enum20.R4,
				Class276.Enum20.R4,
				Class276.Enum20.R4,
				Class276.Enum20.Boolean
			}, shakeObject, shakeType, impactPoint, intensityType, intensityValue, radius, startDelay, ignoreAnimationPlaying);
		}

		public static void ShakeObject(GameObject shakeObject, ShakeMinionType shakeType, Vector3 impactPoint, ShakeMinionIntensity intensityType, float intensityValue, float radius, float startDelay, bool ignoreAnimationPlaying, bool ignoreHeight)
		{
			MonoClass.smethod_19(TritonHs.MainAssemblyPath, "", "MinionShake", "ShakeObject", new Class276.Enum20[9]
			{
				Class276.Enum20.Class,
				Class276.Enum20.ValueType,
				Class276.Enum20.ValueType,
				Class276.Enum20.ValueType,
				Class276.Enum20.R4,
				Class276.Enum20.R4,
				Class276.Enum20.R4,
				Class276.Enum20.Boolean,
				Class276.Enum20.Boolean
			}, shakeObject, shakeType, impactPoint, intensityType, intensityValue, radius, startDelay, ignoreAnimationPlaying, ignoreHeight);
		}

		public static List<MinionShake> FindAllMinionShakers(GameObject shakeTrigger)
		{
			return MonoClass.smethod_15<Class251<MinionShake>>(TritonHs.MainAssemblyPath, "", "MinionShake", "FindAllMinionShakers", new object[1] { shakeTrigger })?.method_25();
		}

		public void LateUpdate()
		{
			method_8("LateUpdate");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public bool isShaking()
		{
			return method_11<bool>("isShaking", Array.Empty<object>());
		}

		public void ShakeAllMinionsRandomMedium()
		{
			method_8("ShakeAllMinionsRandomMedium");
		}

		public void ShakeAllMinionsRandomLarge()
		{
			method_8("ShakeAllMinionsRandomLarge");
		}

		public void RandomShake(float impact)
		{
			method_8("RandomShake", impact);
		}

		public void ShakeMinion()
		{
			method_8("ShakeMinion");
		}

		public Vector2 AngleToVector(float angle)
		{
			return method_11<Vector2>("AngleToVector", new object[1] { angle });
		}
	}
}
